package rekursion;

public class Morse{
  public static void main(String[] args){
    int n=Integer.parseInt(args[0]);
    morse("", n);//elegant mit vielen Speicherleichen
    char[] wort=new char[n];//wiederverwendet aber unelegant
    System.out.println("Punkt=o   Strich=<>");
    morse(wort, 0);
  }

  public static void morse(String schon, int noch){
    if(noch<1) System.out.println(schon);
    else{
      morse(schon+"o", noch-1);
      if(noch>1) morse(schon+"-", noch-2);
    }
  }

  public static void morse(char[] wort, int pos){
    if(pos>=wort.length)// Wort fertig
      System.out.println(wort);
    else{
      if(pos<wort.length){// Punkt hat noch Platz
        wort[pos]='o';
        morse(wort, pos+1);
      }
      if(pos+1<wort.length){//sogar ein Strich hat Platz
        wort[pos]='<';
        wort[pos+1]='>';
        morse(wort, pos+2);
      }
    }
  }
}
